package com.zys.service;

import com.zys.pojo.User;
import com.zys.entity.QueryInfo;
import com.zys.entity.PageResult;

/**
 * 处理用户 Service 层
 */
public interface UserService {

  /**
   * 根据查询条件获取用户列表
   *
   * @param queryInfo 查询条件
   * @return PageResult
   */
  PageResult<User> getUserList(QueryInfo queryInfo);

  /**
   * 根据 id 修改用户状态
   *
   * @param id 用户 id
   * @return 修改成功的数量
   */
  int changeStateById(Integer id);

  /**
   * 添加用户
   *
   * @param user 用户信息
   */
  void add(User user);

  /**
   * 根据 id 删除用户
   *
   * @param id 用户 id
   */
  void deleteById(Integer id);

  /**
   * 查询当前用户名是否已经存在
   *
   * @param username 用户名
   * @return 存在的数量
   */
  int exist(String username);

  /**
   * 根据 id 查询用户信息
   *
   * @param id 用户 id
   * @return 用户信息
   */
  User findUserById(Integer id);

  /**
   * 修改用户信息
   *
   * @param user 修改后的用户信息
   */
  void edit(User user);

  /**
   * 更换用户角色
   *
   * @param userId 用户 id
   * @param roleId 角色 id
   */
  void changeUserRole(Integer userId, Integer roleId);
}
